const util = require("node:util")
const { exec } = require("node:child_process")

// 1.将一个函数包装成promise
const execPromise = util.promisify(exec)
execPromise("node -v").then(res => {
    console.log(`Promise形式输出：${JSON.stringify(res)}`); //=> { stdout: 'v20.11.1\r\n', stderr: '' }
})

// 2.将Promise变成回调的形式
const execCallback = util.callbackify(execPromise)
execCallback("node -v", (err, res) => {
    console.log(`回调形式输出：${JSON.stringify(res)}`); //=> { stdout: 'v20.11.1\r\n', stderr: '' }
})

// 3.格式化输出
console.log(util.format("name: %s, age: %d", "张三", 18)); //=> name: 张三, age: 18